package dados.geral;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;



public abstract class DAOFactory {

	private static EntityManager manager;
	private static final EntityManagerFactory factory;

	static {
		factory = Persistence.createEntityManagerFactory("testePSC");
		if (manager == null || !manager.isOpen()) {
			manager = factory.createEntityManager();
		}
	}
	
	public static FuncaoDAO getFuncaoDAO(){
		FuncaoDAO dao = new FuncaoDAO(manager);
		return dao;
	}
	public static FuncionarioDAO getFuncionarioDao(){
		FuncionarioDAO dao = new FuncionarioDAO(manager);
		return dao;
	}
	
	public static SetorDAO getSetorDao(){
		SetorDAO dao = new SetorDAO(manager);
		return dao;
	}
	
	public static LocalDAO getLocalDao(){
		LocalDAO dao = new LocalDAO(manager);
		return dao;
	}
	
	public static SetorLocalDAO getSetorLocalDao(){
		SetorLocalDAO dao = new SetorLocalDAO(manager);
		return dao;
	}
	
	public static CaracteristicaSetorDAO getCaracteristicaSetorDao(){
		CaracteristicaSetorDAO dao = new CaracteristicaSetorDAO(manager);
		return dao;
	}
	
        public static ArtistaDAO getArtistaDAO(){
                ArtistaDAO dao = new ArtistaDAO(manager);
                return dao;
        }
	
    	public static ProdutoraDAO getpProdutoraDAO(){
    		ProdutoraDAO dao = new ProdutoraDAO(manager);
    		return dao;
    	}

    	
    	public static EventoDAO getEventoDAO(){
    		EventoDAO dao = new EventoDAO(manager);
    		return dao;
    	}

        
    	public static UsuarioDAO getUsuarioDAO(){
    		UsuarioDAO dao = new UsuarioDAO(manager);
    		return dao;
    	}
    	
    	
    	public static IngressoDAO getIngressoDAO(){
    		IngressoDAO dao = new IngressoDAO(manager);
    		return dao;
    	}
    	
}
